package com.wjm.JavaSEAPI.date;

import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * Data:2022年07月04日
 * Author:wjm
 * Content: Calendar抽象类介绍
 *
 *
 *  Calendar也是java.util包下的，但是是一个抽象类，通过调用工厂的方法来完成实例化：Calendar.getInstence()
 *
 *  int get(int field)  field表示时间分量
 *         这个是获取时间分量(年，月，日....)的方法
 *  void set(int field,int value)
 *         这个是设置时间分量(年，月，日....)的方法
 */
public class CalendarDemo {
    public static void main(String[] args) {
        //创建当前时间对象
        Calendar c = Calendar.getInstance();

        int y = c.get(Calendar.YEAR);
        int m = c.get(Calendar.MONTH) +1;//月份是0~11，所以要加1
        int d = c.get(Calendar.DAY_OF_MONTH);//表示月中的天
        int w = c.get(Calendar.DAY_OF_WEEK);//表示周中的天，1~7 分别对应 日一二三四五六
        int h = c.get(Calendar.HOUR);
        int mm = c.get(Calendar.MINUTE);
        int s = c.get(Calendar.SECOND);
        System.out.println(y+"年"+m+"月"+d+"日" +h+"时"+mm+"分"+s+"秒");
        System.out.println(y+"年"+m+"月"+w+"日" +h+"时"+mm+"分"+s+"秒");


        c.set(Calendar.YEAR,2000);
        c.set(Calendar.MONTH,10);//月份的表示是0~11
        /*
        * 注意:周中的天，和月中的天要对应上不然，系统会紊乱
        * */
        c.set(Calendar.DAY_OF_MONTH,7);
        //c.set(Calendar.DAY_OF_WEEK,7);
        c.set(Calendar.HOUR,11);
        c.set(Calendar.MINUTE,11);
        c.set(Calendar.SECOND,11);
        //创建格式化对象
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
        //getTime()S是获取毫秒数
        String time = simpleDateFormat.format(c.getTime());
        System.out.println(time);
    }
}
